package modelo.estrategias;


import modelo.moviles.*;

public abstract class EstrategiaDeVuelo {

	protected int cantidadPasos;
	protected int pasoActual;
	
	
	/* "Le cambia la posicion al movil. Cada estrategia sabra como hacerlo" */
	public abstract void adelantarMovil(Movil movil);
		

	/* "dado un paso me da el siguiente en la rutina" */
	public int buscarSiguientePaso(int paso){

		if (paso == getCantidadPasos()) {
			return 1; 
		} else {
			return (paso + 1);
		}
            

	}
		
	public int getCantidadPasos() {
		return cantidadPasos;
	}


	public void setCantidadPasos(int cantidadPasos) {
		this.cantidadPasos = cantidadPasos;
	}


	public int getPasoActual() {
		return pasoActual;
	}


	public void setPasoActual(int pasoActual) {
		this.pasoActual = pasoActual;
	}


	protected boolean estaDentroDelNivel(Movil movil){
		return (movil.getFila() > 0 && movil.getFila() < movil.getNivel().getCantFilas() &&
				movil.getColumna() > 0 && movil.getColumna() < movil.getNivel().getCantColumnas());
	}

}
